package com.big.identify.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.client.utils.JSONUtils;
import com.big.common.utils.JsonUtils;
import com.big.identify.service.RecognizeService;
import com.big.model.model.recognize.Products;
import com.big.model.model.recognize.RootProducts;
import com.big.model.model.tx.RecognizePictures;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.ocr.v20181119.OcrClient;
import com.tencentcloudapi.ocr.v20181119.models.IDCardOCRRequest;
import com.tencentcloudapi.ocr.v20181119.models.IDCardOCRResponse;
import com.tencentcloudapi.tiia.v20190529.TiiaClient;
import com.tencentcloudapi.tiia.v20190529.models.DetectProductRequest;
import com.tencentcloudapi.tiia.v20190529.models.DetectProductResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
@Configuration
public class RecognizeServiceImpl implements RecognizeService {


    //secretId
    @Value(value="${txAcc.secretId}")
    private   String secretId;

    //secretId
    @Value(value="${txAcc.secretKey}")
    private   String secretKey;

    //http
    @Value(value="${txAcc.http}")
    private   String http;




    /**
     *  识别身份证信息
     */
    @Override
    public RootProducts  RecognizePictures(String url) throws TencentCloudSDKException {
        System.out.println(secretId+"\t"+secretKey);
        // 实例化一个认证对象，入参需要传入腾讯云账户secretId，secretKey,此处还需注意密钥对的保密
        // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
        Credential cred = new Credential(secretId, secretKey);
        // 实例化一个http选项，可选的，没有特殊需求可以跳过
        HttpProfile httpProfile = new HttpProfile();
        httpProfile.setEndpoint("tiia.tencentcloudapi.com");
        // 实例化一个client选项，可选的，没有特殊需求可以跳过
        ClientProfile clientProfile = new ClientProfile();
        clientProfile.setHttpProfile(httpProfile);
        // 实例化要请求产品的client对象,clientProfile是可选的
        TiiaClient client = new TiiaClient(cred, "ap-beijing", clientProfile);
        // 实例化一个请求对象,每个接口都会对应一个request对象
        DetectProductRequest req = new DetectProductRequest();
        req.setImageUrl(url);
        // 返回的resp是一个DetectProductResponse的实例，与请求对象对应
        DetectProductResponse resp = client.DetectProduct(req);
        // 输出json格式的字符串回包


        RootProducts rootProducts = JsonUtils.JSONStringInfoTurnClass(IDCardOCRResponse.toJsonString(resp), RootProducts.class);
        System.out.println(rootProducts);
        return rootProducts;

    }


}
